rootユーザーでAWSを利用した際に出たことのあるGuardDuty Findingsを共有します
こんにちは、臼田です。
みなさん、GuardDutyを使って脅威検知していますか?(挨拶
今回はタイトルの通りrootユーザーでAWSを利用した際に実際に出たことあるGuardDutyのFindingsを共有します。
背景
rootユーザーでの作業はAWSでは通常行うべきではなく、MFAをかけて封印しておき、普段はIAMユーザーを利用します。
どうしてもrootを利用しなければいけないやんごとなき理由がある時だけ使い、使ったら気づけるようにして強い権限の利用を監視・抑止します。
rootユーザーを利用した際に反応するのがCloudTrailで、これを監視しておくことで気づけます。自前でCloudTrailの監視をしてもいいですが、同じようにCloudTrailの監視を行っているサービスがGuardDutyです。
ただGuardDutyの場合いろんなFindings Typeがあったり、学習した結果に基づいて動作するのでrootユーザーで作業したらこれがでる!みたいな1対1の紐付けはできません。
でもrootで作業することを決めたら、運用担当に「こんなイベントが飛ぶよ」と伝えておきたいと思います。
というわけで今回は実際に出たものを共有してみます。そんな場面で役立ててもらえればと思います。
実際のFindings Type
念の為免責しておきますが下記は実際に出たものであり、現在もでるのか、確実に毎回出るのかなどは私の知るところではありません。
GuardDutyは日々アップデートされてFindings Typeも変わりますしベースラインの変更や学習による影響で出なかったり違うものが出る可能性もあるのでご留意ください。
出たもの
前者は2020年4月に観測しています。(それ以降出ていないのはroot作業していないからです)
後者は2019年3月に観測しています。こちらはこれ以降出てなくて、学習したのか最近は出ないものなのかはわかりません。
いくつかTips
気づいたことや思いついたことをすこし書いてみます。
rootユーザーを捉えるならすべてのリージョンでGuardDutyを有効化する
rootユーザーが利用できるエンドポイントはus-east-1のバージニアリージョンだけではありません。もし攻撃者がクレデンシャルを入手していたとするとどのリージョンを利用するかわかりません。
実際に上記Findingsを観測した場所はus-east-1もありますがap-northeast-1もあります。利用できるリージョンはすべてGuardDutyを有効化しておくべきです。(rootユーザーを捉える以外でもそのほうが好ましいですが)
rootユーザーかどうかはuserTypeで判断する
Findings Typeだけだとrootかどうか判断できません。UnauthorizedAccess:IAMUser/ConsoleLoginの場合は特にそうです。
Findingsの中に"user
が含まれていればrootユーザーの作業なので(おそらく)これを見るといいと思います。
ちなみにその場合"userName":"Root"
でもありました。(こちらはIAMユーザーでもやろうと思えばおんなじことができるかもしれませんが)
まとめ
あると役に立つかなーと思って観測した内容をまとめました。
事実だけで今なお同じ挙動になるかわわからないのでそこだけ念押ししておきます!